package 枚举;

/**
 * @projectName: com.xiayuanxing.designPattern
 * @className: SingletonTest08
 * @author: xiayuanxing
 * @description: 枚举
 * @date: 2021/12/16 11:18
 * @version: 1.0
 */
public class SingletonTest08 {

    //优缺点说明：
    // 1)这借助JDK1.5中添加的枚举来实现单例模式。不仅能避免多线程同步问题，而且还能防止反序列化重新创建新的对象。
    // 2)这种方式是EffectiveJava作者JoshBloch提倡的方式。
    // 3)结论：推荐使用！

    public static void main(String[] args) {
        System.out.println("枚举~");
        Singleton8 instance1 = Singleton8.INSTANCE;
        Singleton8 instance2 = Singleton8.INSTANCE;
        System.out.println(instance1==instance2);
        System.out.println(instance1.hashCode());
        System.out.println(instance2.hashCode());
        instance1.sayOK();
    }
}

enum  Singleton8{

    INSTANCE;

    public void sayOK(){
        System.out.println("ok~");
    }

}
